/****************************************************************************
*					ParameterLearning
*
*	Description:	Common ancestor for parameter learning classes
*
****************************************************************************/

#ifndef _ParameterLearning_H
#define _ParameterLearning_H

#include <vector>
#include "PGMStruct.h"
#include "DataSet.h"
#include "Inference.h"

class ParameterLearning {
  private:

  protected:

  public:
	  // Standard constructor - empty one
	ParameterLearning(void) {}
      
	  // Standard destructor - empty one
    virtual ~ParameterLearning() {}

      // Calculating feature value
	virtual float learn (DataSet& dataSet, PGMStruct& pgmStruct, Inference* inference) = 0;

	  // Sets object patameters from environment
	virtual int setParameters (Environment &environment) = 0;
	
}; // end of class

#endif // _ParameterLearning_H
